using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FloatController : MonoBehaviour
{
    [Header("旋转设置")]
    public bool enableRotation = true; // 是否启用旋转
    public Vector3 rotationAxis = new Vector3(0f, 1f, 0f); // 旋转轴（默认绕Y轴）
    public float rotationSpeed = 45f;  // 旋转速度（度/秒）

    [Header("浮动设置")]
    public bool enableFloating = true; // 是否启用浮动
    public float floatSpeed = 1f;      // 浮动速度
    public float floatAmount = 0.1f;   // 浮动幅度

    private float startY;  // 记录初始Y轴位置
    private float timeOffset; // 时间偏移，防止多个物体同步动画

    private void Start()
    {
        startY = transform.position.y; // 记录初始Y轴位置
        timeOffset = Random.Range(0f, Mathf.PI * 2f); // 生成随机时间偏移，防止多个物体同步浮动
    }

    private void Update()
    {
        if (enableRotation)
        {
            // 计算旋转角度，并绕指定轴旋转
            transform.Rotate(rotationAxis, rotationSpeed * Time.deltaTime, Space.Self);
        }

        if (enableFloating)
        {
            // 使用 PingPong 让物体浮动更自然，避免 sin 计算误差
            float newY = startY + Mathf.PingPong(Time.time * floatSpeed + timeOffset, floatAmount * 2) - floatAmount;
            transform.position = new Vector3(transform.position.x, newY, transform.position.z);
        }
    }
}
